package com.itbaizhan.shopping_common.result;

/**
 * @author spf
 * @date 2023/12/12
 * @time 14:09
 */

import lombok.AllArgsConstructor;
import lombok.Data;

import java.io.Serializable;

/**
 * 统一返回结果集返回结果
 * @param <T>
 */
@Data
@AllArgsConstructor
// 因为在dubbo间传递的结果需要序列化
public class BaseResult<T> implements Serializable {
    // 状态码（成功:200, 失败：其他）
    private Integer code;
    // 提示信息
    private String message;
    // 返回数据
    private T data;

    // 构建成功结果
    public static <T> BaseResult<T> ok(){
        return new BaseResult(CodeEnum.SUCCESS.getCode(), CodeEnum.SUCCESS.getMessage(), null);
    }

    // 构建带有数据的成功结果
    public static <T> BaseResult<T> ok(T data){
        return new BaseResult(CodeEnum.SUCCESS.getCode(), CodeEnum.SUCCESS.getMessage(), data);
    }
}
